<?php

class KyLuatController extends Controller
{
    public function view($id)
    {
        $id = rtrim($id, '/');
        $data = $this->KyLuat->selectByCanBo($id);

        $canbo = new Canbo();
        $canbo = $canbo->getInfo($id);

        $this->assign(array(
            'kyluat' => $data,
            'cb_id' =>  $canbo['cb_id'],
            'cb_ten' => $canbo['cb_hoten']
        ));
    }

    public function them($id)
    {
        $id = rtrim($id, '/');
        $this->assign('them_form', true);
        $this->assign('cb_id', $id);
        $canbo = new Canbo();
        $this->assign($canbo->getInfo($id));
    }

    public function sua($params)
    {
        $pattern = '/^(?P<cb_id>\d{5})\/(?P<kt_id>\d+?)\/?$/';
        if (!preg_match($pattern, $params, $match)) {
            throw new Exception("Gọi thực hiện thao tác sửa với đối số không hợp lệ! {$params}");
        } else {
            $canbo = new Canbo();
            $data = $this->KyLuat->selectById($match['kt_id']);
            $this->assign('them_form', false);
            $this->assign('type', 'edit');
            $this->assign($data);
            $this->assign($canbo->getInfo($match['cb_id']));
        }
    }

    public function xoa($params)
    {
        $pattern = '/^(?P<cb_id>\d{5})\/(?P<kl_id>\d+?)\/?$/';
        if (!preg_match($pattern, $params, $match)) {
            throw new Exception("Gọi thực hiện thao tác xóa với đối số không hợp lệ!");
        } else {
            $canbo = new Canbo();
            $data = $this->KyLuat->selectById($match['kl_id']);
            $this->assign($data);
            $this->assign($canbo->getInfo($match['cb_id']));
        }
    }
    public function process()
    {
        if (isset($_POST['submit'])) {
            $type = strtolower($_POST['type']);
            if ($type == 'add') {
                $kl_ngay = preg_replace('/(\d{1,2})\/(\d{1,2})\/(\d{4})/', '$3-$2-$1', $_POST['kl_ngay']);
                $id = $this->KyLuat->them($_POST['cb_id'], $_POST['kl_mota'], $kl_ngay);

                $this->assign(array(
                    'title' => 'Kỷ luật',
                    'content' => "Thêm kỷ luật thành công, mã kỷ luật <strong>{$id}</strong>"
                ));
            } elseif ($type == 'edit') {
                $kl_ngay = preg_replace('/(\d{1,2})\/(\d{1,2})\/(\d{4})/', '$3-$2-$1', $_POST['kl_ngay']);
                $c = $this->KyLuat->sua($_POST['kl_id'], $_POST['cb_id'], $_POST['kl_mota'], $kl_ngay);

                $this->assign(array(
                    'title' => 'Kỷ luật',
                    'content' => "Thực hiện cập nhật kỷ luật hoàn tất, {$c} thay đổi!"
                ));
            } elseif ($type == 'delete') {
                $c = $this->KyLuat->xoa($_POST['kl_id']);
                $this->assign(array(
                    'title' => 'Kỷ luật',
                    'content' => "Thực hiện xóa kỷ luật hoàn tất!"          ));
            } else {
                $this->assign(array(
                    'title' => 'Lỗi xử lý',
                    'content' => 'Loại yêu cầu không hợp lệ!'
                ));
            }

            $this->assign('redirect', "kyluat/view/{$_POST['cb_id']}");
        } else {
            $this->assign('title', 'Lỗi cập nhật');
            $this->assign('content', 'Không có yêu cầu cần xử lý!');
            $this->assign('redirect', '/quanly/canbo');
        }
    }
}
